<?php

require_once $_SERVER['DOCUMENT_ROOT'] . '/proyecto/clases/autoload.inc.php';
if (Zen::IniciarSesion()) {

?>
<?php
    if (isset($_POST['desde_reserva'])) {
        $id_reserva = $_POST['desde_reserva'];

        if (isset($_POST['examenes_reserva_elegidos'])) {
            $examenes_reserva_elegidos = explode(',', $_POST['examenes_reserva_elegidos']);
        }

    }


    /* RECUPERAR DATOS ENVIADO POR POST  */


    $v_examenes = $_POST['examenes'];
    $v_contrastes = $_POST['contrastes'];
    $v_extremidades = $_POST['extremidades'];

    $var = stripslashes($_POST['from_campos']);
    parse_str($var, $arrayCampos);
    /* FIN RECUPERAR DATOS ENVIADO POR POST  */

    /*echo "<pre>";
    print_r ($_POST);
    echo "</pre>";

    exit;
    */

    $db = Zen::Db(0);

    $tabla = 'ordenes_trabajo';
    $record = array();

    /*  INICIO DATOS RESSERVA */


    if (Zen::ValidaRut($arrayCampos['rutp'])) {
        $record["pac_rut"] = $arrayCampos['rutp']; //1
    } else {
        $json = new Services_JSON();
        $datos["error"] = 'mal';
        $datos["detalles"] = 'El rut de paciente ingresado es inválido.';

        $salida = $json->encode($datos);

        echo $salida;

        exit;

    }
    $record["ot_fecha_ing"] = date('Y-m-d'); //2
    $record["ot_estado"] = 'ing'; //3
    
    if($arrayCampos['rutmt']!='')
    $record["met_rut"] = $arrayCampos['rutmt']; //4
    else
    $record["met_rut"] =null;
    $record["mei_rut"] = $arrayCampos['rutmi']; //5
    $record["ot_diagnostico"] = $arrayCampos['diagnostico']; //6
    $record["usu_rut"] = $_SESSION['rut_usuario']; //7
    /*  FIN  DATOS ATENCION */


    //    INICIAR LA TRANSACCION DE DATOS SEGURA
    $db->StartTrans();

    $db->AutoExecute($tabla, $record, 'INSERT');
    // recuperar LA ID DE LA ATENCION RECIEN INGRESADA PARA INGRESAR SUS EXAMENES
    $ot_id = $db->GenId("ordenes_trabajo_ot_id_seq") - 1;

    /*  INICIO DATOS EXAMEN_OT */


    $Convenio = $arrayCampos['rutc'];
    //$TipoExamen = $arrayCampos['tipoexamen'] ;
    $TipoAtencion = $arrayCampos['tipoatencion'];


    /* FIN DATOS EXAMEN_OT */

    /* GUARDAR EXAMEN UNO POR UNO */

    /* OJO QUE TODOS LOS EXAMENES DEBEN SER DEL MISMO TIPO DEL MISMO CONVENIO
    Y DEL MISMO TIPO ATENCION */
    $cont = 0;
    $tabla2 = 'examenes_ot';
    //$MedicoInformante=Medicos_Informantes::getInstancia($arrayCampos['rutmi']);
    foreach ($v_examenes as $k => $val) {
        $record2 = array();

        $record2["ot_id"] = $ot_id;
        $record2["ex_codigo"] = $v_examenes[$cont];
        $record2["con_rut"] = $Convenio;
        $record2["tia_id"] = $TipoAtencion;
        /* copiar valores de aranceles a este examen_ot */
        $Arancel = Arancel::getInstancia($Convenio, $v_examenes[$cont], $TipoAtencion, 0);
        if (!$Arancel) {
            //echo "Fallo al instancia el arancel $Convenio ,examen ".$v_examenes[$cont]." y atencion $TipoAtencion";
            exit;
        }
        //$Examen=Examenes::getInstancia($v_examenes[$cont],1);
        //$record2["exot_contraste"] = $Examen->ex_contraste;
        $record2["exot_contraste"] = $v_contrastes[$cont];

        /* SI SE MARCO CON CONTRASTE EL EXAMEN, SE COPIA EL VALOR CORRESPONDIENTE DESDE
        EL ARANCEL */
        if ($v_contrastes[$cont] == 'true') {
            $record2["exot_valor_contraste_pac"] = $Arancel->ara_valor_con_pac;
        }
        /*  CASO CONTRARIO, SE PONE 0 COMO VALOR */  else {
            $record2["exot_valor_contraste_pac"] = 0;
        }
        //si es extremidad y fue checkeado guardar true o false

        $record2["exot_extremidad"] = $v_extremidades[$cont];

        /* ademas, si fue extremidad hacemos las modificaciones a
        los valores aplicando el 150% mas */

        if ($v_extremidades[$cont] == 'true') {
            $record2["exot_valor_examen_pac"] = $Arancel->ara_valor_exa_pac * 1.5;
            $record2["exot_valor_examen_conv"] = $Arancel->ara_valor_exa_conv * 1.5;
            $record2["exot_valor_honorario"] = $Arancel->ara_valor_honorario * 1.5;
            $record2["exot_valor_exento"] = $Arancel->ara_valor_exento * 1.5;
            $record2["exot_valor_afecto"] = $Arancel->ara_valor_afecto * 1.5;
            $record2["exot_valor_neto"] = $Arancel->ara_valor_neto * 1.5;
            $record2["exot_valor_iva"] = $Arancel->ara_valor_iva * 1.5;
        } else {
            $record2["exot_valor_examen_pac"] = $Arancel->ara_valor_exa_pac;
            $record2["exot_valor_examen_conv"] = $Arancel->ara_valor_exa_conv;
            $record2["exot_valor_honorario"] = $Arancel->ara_valor_honorario;
            $record2["exot_valor_exento"] = $Arancel->ara_valor_exento;
            $record2["exot_valor_afecto"] = $Arancel->ara_valor_afecto;
            $record2["exot_valor_neto"] = $Arancel->ara_valor_neto;
            $record2["exot_valor_iva"] = $Arancel->ara_valor_iva;
        }


        $resu = $db->AutoExecute($tabla2, $record2, 'INSERT');
        if ($id_reserva != '' && $resu) 
        {
            $lista_exa = ExamenesReserva::getInstancia($id_reserva);
            $lista_ex=$lista_exa->DatosArray();

            foreach ($lista_ex as $k => $exa) 
            {
                if (in_array($exa['ex_codigo'], $examenes_reserva_elegidos)) 
                {

                    $record['esres_estado']='con';
                    $db->AutoExecute('examenes_reserva', $record, 'UPDATE',"ex_codigo='".$exa['ex_codigo']."' and res_id='".$exa['res_id']."' and exres_fecha='".$exa['exres_fecha']."' and exres_hora='".$exa['exres_hora']."'"); 

                }

            }
    
            // $reserva = $db->Execute('select * from table where ex_codigo=? and ex_codigo=? and ex_codigo=? and ex_codigo=?', array($exa['ex_codigo'],$exa['ex_codigo'],$exa['ex_codigo'],$exa['ex_codigo']));

        }

        $cont++;
    }
    /*  FIN DATOS EXAMENES */

    $acusete = $db->HasFailedTrans();
    if ($acusete) //si hay errores sql deshacer todos los cambios!

    {
        $db->FailTrans(); //rollback!
    }
    $db->CompleteTrans(); //TERMINAR LA TRANSACCION DE DATOS SEGURA

    $json = new Services_JSON();
    if (!$acusete) {
        $datos = array('error' => 'ok');
        //$datos['filas'] = 'Numero de filas afectadas: ' . $db->Affected_Rows();
        $salida = $json->encode($datos);
        echo $salida;
    } else {
        $e = ADODB_Pear_Error();
        $datos["detalles"] = $e->message;
        //borrar examenes ingresados y ot
        /*         if(!Zen::Borrar($tabla,'ot_id='.$ot_id))
        {
        $datos["detalles"] += 'Error al tratar de eliminar la OT';
        }*/

        //$datos['filas'] = 'Numero de filas afectadas: ' . $db->Affected_Rows();

        $datos["error"] = 'mal';
        $salida = $json->encode($datos);
        echo $salida;
    }

?>
<?php

} else {
    Zen::LogoutModulo();
}

?> 
